package com.wans.easyuibackend.utils.validation;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;

@Component
@SuppressWarnings({"all"})
public class ChineseValidator {

    @Autowired
    private ChineseToPinyin chineseToPinyin;

    // 定义一些常见的中文标点符号，你可以根据需要添加或删除
    private final String CHINESE_PUNCTUATION = "，。？！；：“”‘’《》【】（）—…·—｜ ";

    /**
     * 判断字符串是否全部由纯中文字符组成（不包含标点符号）  
     *  
     * @param hanzi 要检查的字符串
     * @return 如果字符串全部由纯中文字符组成（不包含标点符号），则返回true；否则返回false  
     */  
    public  boolean isPureChinese(String hanzi) {
        for (int i = 0; i < hanzi.length(); i++) {
            char c = hanzi.charAt(i);
            // 检查是否在中文字符的Unicode编码范围内  if (c < '\u4e00' || c > '\u9fa5')
            if (c < '一' || c > '龥') {
                // 如果字符不是中文字符，检查是否是常见的中文标点符号  
                if (CHINESE_PUNCTUATION.indexOf(c) >= 0) {
                    // 如果是标点符号，则返回false  
                    return false;  
                }  
                // 如果既不是中文字符也不是标点符号（可能是空格、数字、英文等），也返回false  
                return false;  
            }  
        }  
        // 如果所有字符都是纯中文字符，则返回true  
        return true;  
    }


    /**
     * 校验汉字与全拼是否相同
     * @param hanzi  汉字
     * @param hanziSpelling 汉字全拼
     * @return
     */
    public boolean isChineseSpelling(String hanzi,String hanziSpelling) {

        String pinyinString = chineseToPinyin.toPinyinString(hanzi);

        return pinyinString.equals(hanziSpelling.toUpperCase());

    }

}